package com.example.musicplayer.util;
import android.graphics.*;

import java.io.*;

import android.media.*;

/**
 * 获取图片工具类
 * @author hyh
 *
 */
public class ImageUtil
{
	
	/**
	 * 获取指定路径的图片
	 * @param path 图片路径
	 * @return 图片位图对象
	 */
	public static Bitmap getBitmap(String path)
	{
		return getBitmap(path,2,300,300);
	}

	/**
	 * 获取指定路径、质量的图片
	 * @param path //图片的路径
	 * @param quality//图片的质量
	 * @return 图片位图对象
	 */
	public static  Bitmap getBitmap(String path, int quality)
	{
		return getBitmap(path,quality,150,150);
	}

	/**
	 * 
	 * 获取指定路径、质量、高、宽的图片
	 * @param path 图片路径
	 * @param quality 图片质量
	 * @param width 图片宽
	 * @param height 图片高
	 * @return 图片位图
	 */
	public static  Bitmap getBitmap(String path, int quality, int width, int height)
	{

		Bitmap bitmap=null;
		bitmap=ThumbnailUtils.createVideoThumbnail(path,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);//获取视频略缩图片
		bitmap = Bitmap.createScaledBitmap(bitmap, width, height, false);//缩放图片
		/*ByteArrayOutputStream baos=null;
		ByteArrayInputStream bais=null;
		
		try
		{
			FileUtil fileUtil=new FileUtil(path);
			if(fileUtil.getType()==FileUtil.TYPE_IMAGE){
				BitmapFactory.Options options=new BitmapFactory.Options();
				options.inSampleSize = quality;
				bitmap = BitmapFactory.decodeFile(path, options);
				bitmap = bitmap.createScaledBitmap(bitmap, width, height, false);
				baos=new ByteArrayOutputStream();
				bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
				bais=new ByteArrayInputStream(baos.toByteArray());
				bitmap = BitmapFactory.decodeStream(bais);
			}else if(fileUtil.getType()==FileUtil.TYPE_VIDEO){
				
			}

		}
		catch (Exception e)
		{
		}finally{
			try{
				if(baos!=null){
					baos.close();
				}
				if(bais!=null){
					bais.close();
				}
			}catch(Exception e){

			}
		}*/
		return bitmap;
	}

	/**
	 * 获取指定文件、宽、高的图片
	 * @param f 指定文件
	 * @param width 图片宽
	 * @param height 图片高
	 * @return 图片路径
	 */
	public static String getStringBitmap(File f, int width, int height)
	{
		return getStringBitmap(f.getAbsolutePath(),width,height);
	}

	/**
	 * 指定图片路径、宽、高获取图片
	 * @param path 图片路径
	 * @param width 图片宽
	 * @param heigth 图片高
	 * @return 图片路径
	 */
	public static String getStringBitmap(String path,int width, int heigth)
	{

		String filePath="";
		try
		{
			File f=new File(path);
			String fileName=f.getName().substring(0,f.getName().lastIndexOf("."))+".png";//获取文件名
			f = new File(f.getParent(), "mypicture");//新建File对象
			if (!f.exists())//如果文件夹不存在
			{
				f.mkdirs();//创建文件夹
			}
			f = new File(f, fileName);//新建文件
			if (!f.exists())//如果文件不存在
			{
				Bitmap bitmap=getBitmap(path,2,width,heigth);//创建图片位图
				ByteArrayOutputStream baos=new ByteArrayOutputStream();//新建ByteArrayOutputStream对象
				bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);//将位图压缩到ByteArrayOutputStream对象中
				FileOutputStream fos=new FileOutputStream(f);
				fos.write(baos.toByteArray());//将位图写入到文件中
				fos.flush();//清空fos
				fos.close();//关闭fos
				baos.close();//关闭baos
			}
			filePath = f.getAbsolutePath();//获取文件路径
		}
		catch (Exception e)
		{
		}
		return filePath;
	}

	/**
	 * 判断图片是否存在
	 * @param path 图片指定路径
	 * @return true or false
	 */
	public static boolean isExsits(String path)
	{

		File f=new File(path);//新建File对象
		String fileName=f.getName();//获取文件名
		f = new File(f.getParent(), "mypicture");//新建File
		f = new File(f, fileName);//新建File
		if (f.exists())
		{
			return true;//如果文件存在返回true
		}
		else
		{
			return false;//否则返回false
		}
	}
}
